package com.cruise.h5.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.cruise.common.web.result.Result;
import com.cruise.h5.pojo.dto.*;
import com.cruise.h5.pojo.entity.Video;
import com.cruise.h5.pojo.vo.GetPlayVideoInfoVO;
import com.cruise.h5.pojo.vo.VideoListMainPageVO;
import com.cruise.h5.pojo.vo.VideoListVO;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author cruise
 * @since 2021-03-25
 */
public interface VideoService extends IService<Video> {

    /**
     * 保存视频
     * @param videoDTO
     * @return
     */
    Result saveVideo(VideoDTO videoDTO);

    /**
     * 获得分类树
     * @return
     */
    Result getVideoCategoryTree();

    /**
     * 根绝分类获得标签（推荐标签 + 自定义标签
     * @param categoryId
     * @return
     */
    Result getLabelByCategory(String categoryId);

    /**
     * 保存封面
     * @param  coverPicDTO
     * @return
     */
    Result saveCoverPic(CoverPicDTO coverPicDTO);

    /**
     * 点赞视频/取消点赞视频
     * @param likeDTO
     */
    Integer like(LikeDTO likeDTO);

    /**
     * 视频列表
     * @param videoListDTO
     * @return Result
     */
    Result<IPage<VideoListVO>> videoList(VideoListDTO videoListDTO);

    /**
     * 播放页的信息 视频信息 + 作者信息
     * @param videoId
     * @return
     */
    Result<GetPlayVideoInfoVO> getPlayVideoInfo(String videoId);

    /**
     * 主页视频列表
     * @param videoListMainPageDTO
     * @return
     */
    Result<IPage<VideoListMainPageVO>> videoListMainPage(VideoListMainPageDTO videoListMainPageDTO);
}
